<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
    <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
</head>
<body>
<div id="app">
    Vue生命周期第一个阶段-初始化阶段
    <hr>
    <span id="sp">{{message}}</span>
</div>
<script>
    var app = new Vue({
        el: '#app',
        data: {
            message: "你正在学习Vue生命周期-初始化阶段"
        },
        methods: {},
        beforeCreate() {
            //生命周期中的第一个函数，该函数在执行时Vue实例仅仅完成了自身事件的绑定和生命周期函数的初始化工作
            //此时Vue实例中还没有el,data,methods相关属性
            console.log("beforeCreate:" + this.message);
        },
        created() {
            //生命周期的第二个函数，该函数在执行时Vue实例已经初始化了el,data,methods中的相关内容
            console.log("created:" + this.message);
        },
        beforeMount() {
            //生命周期的第三个函数，该函数在执行时将el中指定的作用范围作为模板编译
            //输出结果：beforeMount:{{message}} 说明此时{{message}}还没有被替换
            console.log("beforeMount:" + document.getElementById("sp").innerText);
        },
        mounted(){
            //生命周期中的第四个函数，该函数在执行过程中已经将数据渲染到页面上并且已经更新了页面
            //输出结果：beforeMount:你正在学习Vue生命周期-初始化阶段  此时{{message}}已经被替换为Vue对象中在data定义的值
            console.log("beforeMount:" + document.getElementById("sp").innerText);
        }
        //至此，Vue对象挂载完毕
    });
</script>
</body>
</html>